/**
 * @date 10:16:28 AM
 * IGroupAPPService.java
 * Administrator
 * TODO
 */
package com.qs.education.service;

import com.qs.education.bean.api.ResponseBean;
import com.qs.education.bean.api.ResponseListBean;
import com.qs.education.bean.beans.EducationGroupResponse;
import com.qs.education.bean.entity.EducationGroup;

/**
 * @class IGroupAPPService	
 * @author Warren
 * @description
 * @date Nov 8, 2018 
 */
public interface IGroupAPPService {
	
	/**
	 * @author Warren
	 * @param id 群号
	 * @return Map<String,Object>
	 * @description id为群号(10001开始增长)，根据群号搜索班群
	 * @date Nov 9, 2018
	 */
	public EducationGroupResponse searchById(Long id);
	
	/**
	 * @author Warren
	 * @param userId 申请的用户id
	 * @param groupId 申请的班群号
	 * @param sendType 申请类型,教师或学生
	 * @return ResponseBean
	 * @description 申请加入班群
	 * @date Nov 19, 2018
	 */
	public ResponseBean apply(Long userId,Long groupId,int sendType);
	
	/**
	 * @author Warren
	 * @param id 申请班群消息id
	 * @param messageStatus 教师处理结果
	 * @return ResponseBean
	 * @description 教师处理班群申请
	 * @date Nov 13, 2018
	 */
	public ResponseBean applyHandle(Long id,int messageStatus);
	
	/**
	 * @author Warren
	 * @param studentId 学生id
	 * @return ResponseListBean<EducationGroup>
	 * @description 根据学生id获取学生的班群列表
	 * @date Nov 13, 2018
	 */
	public ResponseListBean<EducationGroup> findGroupByStudentId(Long studentId);
	
	/**
	 * @author Warren
	 * @param ids 移除学生的id集合 
	 * @return ResponseBean
	 * @description 批量移除学生
	 * @date Nov 13, 2018
	 */
	public ResponseBean removeStudents(String[] ids,String groupId);
	
	/**
	 * @Description EducationGroupResponse
	 * @author Leon
	 * @date   Nov 9, 2018
	 * @param  
	 * @return EducationGroupResponse
	 */
	public ResponseListBean<EducationGroupResponse> findGroupByTeacherId(String teacherId);
	
	/**
	 * @Description 创建班群
	 * @author Leon
	 * @date   Nov 12, 2018
	 * @param  
	 * @return EducationGroupResponse
	 */
	public EducationGroupResponse createGroups(String params);
	/**
	 * @Description 移除教师
	 * @author Leon
	 * @date   Nov 13, 2018
	 * @param  
	 * @return EducationGroupResposne
	 */
	public EducationGroupResponse removeTeacher(String teacherId,String groupId);
	
	/**
	 * @Description 转让班群
	 * @author Leon
	 * @date   Nov 13, 2018
	 * @param  
	 * @return EducationGroupResponse
	 */
	public EducationGroupResponse transferGroup(String teacherId,String groupId);
	
	/**
	 * @Description 修改班群信息
	 * @author Leon
	 * @date   Nov 14, 2018
	 * @param  
	 * @return EducationGroupResponse
	 */
	public EducationGroupResponse modifyGroup(EducationGroup group);
	
	/**
	 * @Description 删除群组
	 * @author Leon
	 * @date   Nov 14, 2018
	 * @param  
	 * @return EducationGroupResponse
	 */
	public EducationGroupResponse deleteGroupById(String groupId);
}
